A computer network is a collection of interconnected network devices that exchange data and share resources. In a packet-based network, such as the Internet, the network devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
Network devices referred to as routers are responsible for routing the packets through the packet-based network. The routers receive traffic from a wide variety of source devices and forward this traffic in accordance with various priorities. Usually, a service provider that owns the packet-based network provides various service levels to customers. For example, the service provider may offer a data service at varying bandwidths, guarantees, latencies, and so forth. A customer subscribes to one of these service levels, and the service provider provisions the routers to associate traffic originating from this customer's source device with the particular priority associated with the service level subscribed to by the customer. This priority ensures the customer receives the agreed upon bandwidth of the service level subscribed to by the customer.
In response to receiving a packet from the source device, the router first classifies the packet as originating from the source device and identifies the particular priority provisioned in the router for the source device. The router then typically stores the packet as one or more discrete data units referred to as “chunks” in one of a number of queues that is associated with the determined priority. The router services the queues in a manner that satisfies each of the defined priorities.